﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace eSDK_TP_Demo_CS_CSharp.FunctionPage
{
    /// <summary>
    /// Interaction logic for ScheduleConf_Code.xaml
    /// </summary>
    public partial class ScheduleConf_Code : UserControl
    {
        public ScheduleConf_Code()
        {
            InitializeComponent();
            ScheduleConf_Code_Loaded();
        }

        private void ScheduleConf_Code_Loaded()
        {
            this.Code_FilowDocument.Inlines.Add("\r\n");
            Bold bold = new Bold();
            bold.Inlines.Add("ScheduleConf_UI.xaml.cs\r\n");
            bold.FontSize = 15;
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("using System;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Collections.Generic;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Linq;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Controls;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Data;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Documents;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Input;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Media;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Media.Imaging;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Navigation;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Shapes;\r\n");
            this.Code_FilowDocument.Inlines.Add("using com.huawei.esdk.tp.professional.DataType;\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("namespace eSDK_TP_Demo_CS_CSharp.FunctionPage\r\n");
            this.Code_FilowDocument.Inlines.Add("{\r\n");
            this.Code_FilowDocument.Inlines.Add("    public partial class ScheduleConf_UI : UserControl\r\n");
            this.Code_FilowDocument.Inlines.Add("    {\r\n");
            this.Code_FilowDocument.Inlines.Add("        AuthorizeService loginService = new AuthorizeService();\r\n");
            this.Code_FilowDocument.Inlines.Add("        ConferenceService service = new ConferenceService();\r\n");
            this.Code_FilowDocument.Inlines.Add("        public List<SiteInfoEx> siteList;\r\n");
            this.Code_FilowDocument.Inlines.Add("        List<SiteInfoEx> allSites = null;\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        public ScheduleConf_UI()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            InitializeComponent();\r\n");
            this.Code_FilowDocument.Inlines.Add("            GetSiteList();\r\n");
            this.Code_FilowDocument.Inlines.Add("            Initialize();\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void Initialize()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            this.BeginTimeText.Text = DateTime.Now.AddMinutes(5).ToString();\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void ScheduleConf_UI_Loaded(object sender, RoutedEventArgs e)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            if (this.SiteInfoList.Items.Count != 0)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.SiteInfoList.Items.Refresh();\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void SiteListBut_Click(object sender, RoutedEventArgs e)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            GetSiteList();\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        //获取所有会场列表\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void GetSiteList()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            if (allSites == null)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                loginService.Login();\r\n");
            this.Code_FilowDocument.Inlines.Add("                allSites = service.QuerySites();\r\n");
            this.Code_FilowDocument.Inlines.Add("                if (allSites != null)\r\n");
            this.Code_FilowDocument.Inlines.Add("                {\r\n");
            this.Code_FilowDocument.Inlines.Add("                    this.SiteInfoList.ItemsSource = allSites;\r\n");
            this.Code_FilowDocument.Inlines.Add("                }\r\n");
            this.Code_FilowDocument.Inlines.Add("                loginService.Logout();\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            else\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.SiteInfoList.ItemsSource = allSites;\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        //获取会场列表中被选中的会场，并显示出来\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void AddSite_Click(object sender, RoutedEventArgs e)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            siteList = new List<SiteInfoEx>();\r\n");
            this.Code_FilowDocument.Inlines.Add("            int count = this.SiteInfoList.SelectedItems.Count;\r\n");
            this.Code_FilowDocument.Inlines.Add("            if (count >= 1)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                foreach (SiteInfoEx site in this.SiteInfoList.SelectedItems)\r\n");
            this.Code_FilowDocument.Inlines.Add("                {\r\n");
            this.Code_FilowDocument.Inlines.Add("                    siteList.Add(site);\r\n");
            this.Code_FilowDocument.Inlines.Add("                }\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.SiteInfoList.ItemsSource = siteList;\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void DelSite_Click(object sender, RoutedEventArgs e)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            foreach (SiteInfoEx se in this.SiteInfoList.SelectedItems)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                siteList.Remove(se);\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            this.SiteInfoList.Items.Refresh();\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("        \r\n");
            this.Code_FilowDocument.Inlines.Add("        //创建预约会议\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void CreateConf_Click(object sender, RoutedEventArgs e)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            loginService.Login();\r\n");
            this.Code_FilowDocument.Inlines.Add("            DateTime beginTime;\r\n");
            this.Code_FilowDocument.Inlines.Add("            try\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                string name = this.ConfName.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("                beginTime = DateTime.Parse(this.BeginTimeText.Text);\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("                string duration = this.DurationText.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("                string accessCode = this.AccessCodeText.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("                string password = this.PasswordText.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("                string mediaEncryptType = this.mediaEncryptTypeCombx.SelectedValue.ToString();\r\n");
            this.Code_FilowDocument.Inlines.Add("                string cpResource = this.cpResouceCombx.SelectedValue.ToString();\r\n");
            this.Code_FilowDocument.Inlines.Add("                string auxVideoFormat = this.auxVideoFormatCombx.SelectedValue.ToString();\r\n");
            this.Code_FilowDocument.Inlines.Add("                string auxVideoProtocol = this.auxVideoProtocolCombx.SelectedValue.ToString();\r\n");
            this.Code_FilowDocument.Inlines.Add("                string rate = this.rateComBx.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("                SiteInfoEx[] siteArray = null;\r\n");
            this.Code_FilowDocument.Inlines.Add("                if (siteList != null)\r\n");
            this.Code_FilowDocument.Inlines.Add("                {\r\n");
            this.Code_FilowDocument.Inlines.Add("                    siteArray = new SiteInfoEx[siteList.Count];\r\n");
            this.Code_FilowDocument.Inlines.Add("                    for (int i = 0; i < siteList.Count; i++)\r\n");
            this.Code_FilowDocument.Inlines.Add("                    {\r\n");
            this.Code_FilowDocument.Inlines.Add("                        siteArray[i] = siteList[i];\r\n");
            this.Code_FilowDocument.Inlines.Add("                    }\r\n");
            this.Code_FilowDocument.Inlines.Add("                }\r\n");
            this.Code_FilowDocument.Inlines.Add("                //调用ConferenceService的AddScheduleConf方法，实现预约会议\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("                ResultCodeClass result = service.AddScheduleConf(name, beginTime, duration, accessCode, password,mediaEncryptType, cpResource, auxVideoFormat, auxVideoProtocol, rate, siteArray);\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("                if (result.Result == \"0\")\r\n");
            this.Code_FilowDocument.Inlines.Add("                {\r\n");
            this.Code_FilowDocument.Inlines.Add("                    this.confIDText.Text = result.ConfInfo.confId;\r\n");
            this.Code_FilowDocument.Inlines.Add("                    this.OperationSucceedText.Visibility = Visibility.Visible;\r\n");
            this.Code_FilowDocument.Inlines.Add("                    this.OperationDefeatText.Visibility = Visibility.Collapsed;\r\n");
            this.Code_FilowDocument.Inlines.Add("                    this.ConfIDGrid.Visibility = Visibility.Visible;\r\n");
            this.Code_FilowDocument.Inlines.Add("                }\r\n");
            this.Code_FilowDocument.Inlines.Add("                else\r\n");
            this.Code_FilowDocument.Inlines.Add("                {\r\n");
            this.Code_FilowDocument.Inlines.Add("                    this.OperationSucceedText.Visibility = Visibility.Collapsed;\r\n");
            this.Code_FilowDocument.Inlines.Add("                    this.OperationDefeatText.Visibility = Visibility.Visible;\r\n");
            this.Code_FilowDocument.Inlines.Add("                    this.ConfIDGrid.Visibility = Visibility.Collapsed;\r\n");
            this.Code_FilowDocument.Inlines.Add("                }\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.ResultCodeText.Text = result.Result;\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            catch (Exception ex)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            finally\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                loginService.Logout();\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("    }\r\n");
            this.Code_FilowDocument.Inlines.Add("}\r\n");


            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            bold = new Bold();
            bold.Inlines.Add("ConferenceService.cs\r\n");
            bold.FontSize = 15;
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("using System;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Collections.Generic;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Linq;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("//引用项目所用到的包\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("using com.huawei.esdk.tp.professional.local;\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            bold.Inlines.Add("using com.huawei.esdk.tp.professional.DataType;\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("namespace eSDK_TP_Demo_CS_CSharp\r\n");
            this.Code_FilowDocument.Inlines.Add("{\r\n");
            this.Code_FilowDocument.Inlines.Add("    public class ConferenceService\r\n");
            this.Code_FilowDocument.Inlines.Add("    {\r\n");
            this.Code_FilowDocument.Inlines.Add("        private ConferenceInfoEx scheduleConf = null;\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("        private ConferenceMgrServiceEx service = null;\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        public ConferenceService()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            //实例化ConferenceMgrServiceEx\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("            service = ConferenceMgrServiceEx.Instance();\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("            scheduleConf = new ConferenceInfoEx();\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        //预约会议\r\n");
            this.Code_FilowDocument.Inlines.Add("        public ResultCodeClass AddScheduleConf(string name, DateTime beginTime, string duration, string accessCode, string password,string mediaEncryptType, string cpResource, string auxVideoFormat, string auxVideoProtocol, string rate, SiteInfoEx[] sites)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            ResultCodeClass resultC = new ResultCodeClass(); \r\n");
            this.Code_FilowDocument.Inlines.Add("            scheduleConf.name = name;\r\n");
            this.Code_FilowDocument.Inlines.Add("            scheduleConf.beginTime = beginTime;\r\n");
            this.Code_FilowDocument.Inlines.Add("            int minutes = Int32.Parse(duration);\r\n");
            this.Code_FilowDocument.Inlines.Add("            int hours = minutes / 60;\r\n");
            this.Code_FilowDocument.Inlines.Add("            minutes = minutes - hours * 60;\r\n");
            this.Code_FilowDocument.Inlines.Add("            scheduleConf.duration = \"P0Y0M0DT\" + hours.ToString() + \"H\" + minutes.ToString() + \"M0.000S\";\r\n");
            this.Code_FilowDocument.Inlines.Add("            scheduleConf.accessCode = accessCode;\r\n");
            this.Code_FilowDocument.Inlines.Add("            scheduleConf.rate = rate;\r\n");
            this.Code_FilowDocument.Inlines.Add("            scheduleConf.sites = sites;\r\n");
            this.Code_FilowDocument.Inlines.Add("            //调用ConferenceMgrServiceEx中scheduleConfEx实现预约会议，返回操作结果‘result’\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("            TPSDKResponseEx<ConferenceInfoEx> result = service.scheduleConfEx(scheduleConf);\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("            int resultCode = result.resultCode;\r\n");
            this.Code_FilowDocument.Inlines.Add("            if (0 == resultCode)\r\n");
            this.Code_FilowDocument.Inlines.Add("                resultC.ConfInfo = result.result;\r\n");
            this.Code_FilowDocument.Inlines.Add("            resultC.Result = resultCode.ToString();\r\n");
            this.Code_FilowDocument.Inlines.Add("            return resultC;\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        public int DelSiteFromConf(string confID, string uri, DateTime beginTime)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            int resultCode = service.delSiteFromConfEx(confID, uri, beginTime);\r\n");
            this.Code_FilowDocument.Inlines.Add("            return resultCode;\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        // 查询所有会场信息\r\n");
            this.Code_FilowDocument.Inlines.Add("        public List<SiteInfoEx> QuerySites()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            List<SiteInfoEx> sites = null; \r\n");
            this.Code_FilowDocument.Inlines.Add("            TPSDKResponseEx<List<SiteInfoEx>> result = service.querySitesEx();\r\n");
            this.Code_FilowDocument.Inlines.Add("            int resultCode = result.resultCode;\r\n");
            this.Code_FilowDocument.Inlines.Add("            if (0 == resultCode)\r\n");
            this.Code_FilowDocument.Inlines.Add("                sites = result.result;\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("            return sites;\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("    }\r\n");
            this.Code_FilowDocument.Inlines.Add("}\r\n");


            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            bold = new Bold();
            bold.Inlines.Add("ResultCodeClass.cs\r\n");
            bold.FontSize = 15;
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("using System;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Collections.Generic;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Linq;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("using com.huawei.esdk.tp.professional.DataType;\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("namespace eSDK_TP_Demo_CS_CSharp\r\n");
            this.Code_FilowDocument.Inlines.Add("{\r\n");
            this.Code_FilowDocument.Inlines.Add("    public class ResultCodeClass\r\n");
            this.Code_FilowDocument.Inlines.Add("    {\r\n");
            this.Code_FilowDocument.Inlines.Add("        string result;\r\n");
            this.Code_FilowDocument.Inlines.Add("        ConferenceInfoEx confInfo;\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        public ResultCodeClass()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        public string Result\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            get { return result; }\r\n");
            this.Code_FilowDocument.Inlines.Add("            set { result = value; }\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        public ConferenceInfoEx ConfInfo\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            get { return confInfo; }\r\n");
            this.Code_FilowDocument.Inlines.Add("            set { confInfo = value; }\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("    }\r\n");
            this.Code_FilowDocument.Inlines.Add("}\r\n");

        }
    }
}
